
# 常见服务端口
COMMON_PORTS = {
    'web': [80, 81, 82, 88, 443, 8080, 8081, 8082, 8088, 8443, 8888],
    'ftp': [20, 21],
    'ssh': [22],
    'telnet': [23],
    'smtp': [25, 465, 587],
    'dns': [53],
    'pop3': [110, 995],
    'imap': [143, 993],
    'ldap': [389, 636],
    'smb': [445],
    'mssql': [1433],
    'mysql': [3306],
    'rdp': [3389],
    'postgresql': [5432],
    'vnc': [5900],
    'redis': [6379],
    'mongodb': [27017, 27018, 27019],
    'oracle': [1521],
    'elasticsearch': [9200, 9300],
}

# 获取所有常见端口列表
ALL_COMMON_PORTS = sorted(list(set(
    port for ports in COMMON_PORTS.values() for port in ports
)))

# 服务指纹扫描配置
SERVICE_SCAN_CONFIG = {
    'ftp': {
        'timeout': 5,
        'banner_timeout': 3,
        'anonymous_check': True
    },
    'ssh': {
        'timeout': 5,
        'banner_timeout': 3,
        'key_info': True
    },
    'http': {
        'timeout': 10,
        'follow_redirects': True,
        'ssl_info': True,
        'headers': True
    },
    'https': {
        'timeout': 10,
        'follow_redirects': True,
        'ssl_info': True,
        'headers': True
    },
    'mysql': {
        'timeout': 5,
        'banner_timeout': 3
    },
    'mssql': {
        'timeout': 5,
        'banner_timeout': 3
    },
    'postgresql': {
        'timeout': 5,
        'banner_timeout': 3
    },
    'mongodb': {
        'timeout': 5,
        'banner_timeout': 3
    },
    'redis': {
        'timeout': 5,
        'banner_timeout': 3
    },
    'smtp': {
        'timeout': 5,
        'banner_timeout': 3,
        'starttls_check': True
    },
    'pop3': {
        'timeout': 5,
        'banner_timeout': 3,
        'starttls_check': True
    },
    'imap': {
        'timeout': 5,
        'banner_timeout': 3,
        'starttls_check': True
    },
    'rdp': {
        'timeout': 5,
        'banner_timeout': 3,
        'security_check': True
    },
    'vnc': {
        'timeout': 5,
        'banner_timeout': 3,
        'auth_check': True
    }
}

# 指纹扫描超时设置
FINGERPRINT_TIMEOUT = 5  # 默认超时时间（秒）
BANNER_TIMEOUT = 3       # Banner获取超时时间（秒）

# 扫描并发配置
MAX_CONCURRENT_SCANS = 100  # 最大并发扫描数
SCAN_DELAY = 0.1           # 扫描间隔（秒） 